Unverified

Name

Convert to WebP

About

This WordPress code snippet automatically converts uploaded images (JPEG, PNG, GIF) to WebP format during the upload process.

Language

PHP

Rating

Voted: 1 by 1 user(s)

How to Setup Snippet

This snippet can be added to the functions.php file of a theme or used with a plugin like Code Snippets or WPCodeBox to enhance WordPress's image-handling capabilities.

Codevault

Jinu Varghese

Scroll down to see more snippets from this codevault.

Wordpress Compatability

The author has indicated that this snippet is compatable up to wordpress version: 6.4

Code Snippet Plugin Sync

Free & Pro

Download this snippet by clicking the download button, then head over to the Code Snippet Plugin settings in your wordpress admin dashboard, select the import menu then upload this file to import into your wordpress site.

Pro Only (Coming Soon)

You will be able to click a button and sync this snippet to your wordpress site automatically and from your dashboard manage all code snippets across all your wordpress sites that have the Code Snippets Pro plugin installed.

History

Last modified:

18/09/2024

Important Note

This snippet has the following status:

Unverified

This snippet has not been verified, use with caution and at your own risk. See details provided by author in sidebar and click below to find out more.

Convert to WebP

 
                    
1/**
2 * Convert Uploaded Images to WebP Format
3 *
4 * This snippet converts uploaded images (JPEG, PNG, GIF) to WebP format
5 * automatically in WordPress. Ideal for use in a theme's functions.php file,
6 * or with plugins like Code Snippets or WPCodeBox.
7 *
8 * @package WordPress_Custom_Functions
9 * @autor Mark Harris
10 * @link www.christchurchwebsolutions.co.uk
11 *
12 * Usage Instructions:
13 * - Add this snippet to your theme's functions.php file, or add it as a new
14 * snippet in Code Snippets or WPCodeBox.
15 * - The snippet hooks into WordPress's image upload process and converts
16 * uploaded images to the WebP format.
17 *
18 * Optional Configuration:
19 * - By default, the original image file is deleted after conversion to WebP.
20 * If you prefer to keep the original image file, simply comment out or remove
21 * the line '@unlink( $file_path );' in the wpturbo_handle_upload_convert_to_webp function.
22 * This will preserve the original uploaded image file alongside the WebP version.
23 */
24 
25add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');
26 
27function wpturbo_handle_upload_convert_to_webp($upload) {
28 if ($upload['type'] == 'image/jpeg' || $upload['type'] == 'image/png' || $upload['type'] == 'image/gif') {
29 $file_path = $upload['file'];
30 
31 // Check if ImageMagick or GD is available
32 if (extension_loaded('imagick') || extension_loaded('gd')) {
33 $image_editor = wp_get_image_editor($file_path);
34 if (!is_wp_error($image_editor)) {
35 $file_info = pathinfo($file_path);
36 $dirname = $file_info['dirname'];
37 $filename = $file_info['filename'];
38 
39 // Create a unique file path for the WebP image
40 $def_filename = wp_unique_filename($dirname, $filename . '.webp');
41 $new_file_path = $dirname . '/' . $def_filename;
42 
43 // Attempt to save the image in WebP format
44 $saved_image = $image_editor->save($new_file_path, 'image/webp');
45 if (!is_wp_error($saved_image) && file_exists($saved_image['path'])) {
46 // Success: replace the uploaded image with the WebP image
47 $upload['file'] = $saved_image['path'];
48 $upload['url'] = str_replace(basename($upload['url']), basename($saved_image['path']), $upload['url']);
49 $upload['type'] = 'image/webp';
50 
51 // Optionally remove the original image
52 @unlink($file_path);
53 }
54 }
55 }
56 }
57 
58 return $upload;
59}

1

Related Snippets

Please see some snippets below related to this snippet..

General

Unverified

0

add custom title tags, meta descriptions, and alt tags

Added: 1 year ago

Last Updated: 2 weeks ago

This code will add custom title tags, meta descriptions, and alt tags to all pages on your website. The title tag will include the most important keywords that you want to rank for, the meta descripti...

General

AI Verified

0

Disable Widget Blocks

Added: 11 months ago

Last Updated: 11 months ago

Use the classic interface instead of Blocks to manage Widgets.

General

AI Verified

0

FacetWP Proximity - limit to country

Added: 9 months ago

Last Updated: 3 months ago

Other Snippets in this Codevault

These are some popular snippets from this users codevault..

General

Unverified

1

Convert to WebP

Added: 1 week ago

Last Updated: 1 day ago

This WordPress code snippet automatically converts uploaded images (JPEG, PNG, GIF) to WebP format during the upload process.

General

Unverified

0

Add Categories to Pages

Added: 1 day ago

Last Updated: 1 day ago

This snippet allows you to assign categories to WordPress pages, similar to how they are assigned to posts. This is useful when you want to organize your pages using categories and potentially display...